Полная версия этой страницы:
Modicon Premium
Всем привет
Собственно возник вот такой вопрос....,поблема,большая проблема
Усть список массивов с адресами(массивов порядка 30,адресов всего примерно 400)
Эти адреса находятся на 3х контролерах,мне нужно чтобы,все эти адреса шли на 4ый,
Но решения этой проблемы так и не получил,точнее мне многие объясняли,но из-за того,Что я новичок в этой области,мне тяжело достаточно понять....
Каким образом я смогу это сделать(желательно не образно а чуть-чуть п-детальнее)
Спасибо
Вот,что вызывает вопросы...
1) not FBI_0.q - таймер сам себя перезапускает
2) в моем примере на входе блока AND стоит инверсия. В Вашем пример test это массив, с помощью которого контролируется обработка функции READ_VAR. 0-й бит этого 1-го слова массива указывает на то, что функция в стадии обработки. Тоесть если test[1].0=1 - то предыдущий вызов функции еще не обработан, а если равно 0, то уже обработан. По-этому ставится инверсия
3) NUM -это с какого, а NB - это количество
4) настоятельно рекомендую обмениваться словами %MW а не %M, в конце концов биты можно паковать в слова
Вроде бы кое как улеглось у меня что к чему,но единственное что не могу понять
Мы эти блоки ставим в тот контроллер с которого хотим считать,но каким образом я смогу отправить мои массивы с адресами...Вот вроде понял,что нужно создать массив из 4х слов,а в какой раздел вставлять те массивы которые нужно выслать?
заранее спасибо
READ_VAR ставится на том ПЛК, который хочет считать. А на том ПЛК с которого считуют ничего ставить не надо. Modbus/TCP Сервер прописан на уровне операционки.
Если нужно записывать с ПЛК, туда нужно прописать программу с функцией WRITE_VAR. А на том ПЛК на который пишут ничего ставить не надо. Modbus/TCP Сервер прописан на уровне операционки.
если я Вас правильно понял
ну впринципе я так и понимал,а вот главный вопрос,в read_var(вы мне уже не первый раз говорили об этом) Но,я так и не совсем понял,раз мне нужно считать все те массивы что у меня находятся на другом ПЛК,что же я тогда должен вводить в read_var ,он же у меня получается совершенно пустой...
Ну создам я этот массив,и 4х слов,а как же быть дальше....вот не укладывается это у меня в голове,столько времени уже прошло,а в голове так особо и не улеглось,как быть в таких случаях...
Цитата(san @ 21.10.2010, 14:30)

2) в моем примере на входе блока AND стоит инверсия. В Вашем пример test это массив, с помощью которого контролируется обработка функции READ_VAR. 0-й бит этого 1-го слова массива указывает на то, что функция в стадии обработки. Тоесть если test[1].0=1 - то предыдущий вызов функции еще не обработан, а если равно 0, то уже обработан. По-этому ставится инверсия
Это массив из 4-х слов не для обмена данными, а для контроля за роботой функции.
Цитата(san @ 21.10.2010, 14:30)

3) NUM -это с какого, а NB - это количество
А вот это указывается "массив" источника данных на чужом ПЛК.
А массив, куда ложатся считанные данные указывается на выходе RECP в READ_VAR.
ScrewDriver
26.10.2010, 10:18
1) Можно сделать глобальную таблицу в каждом контроллере и тогда все данные будут доступны везде
2) Можно использовать стандартную таблицу обмена - ничего писать не надо, нужно только сконфигурировать контроллеры на чтение-запись. Читать-писать ПЛК будут сами.
К сожалению сейчас Юнити не установлена, так что как это выглядит не покажу - посмотрите раздел communications.
Позвоните в техподдержку, там помогут и расскажут как и что.
Цитата(san @ 26.10.2010, 11:14)

3) NUM -это с какого, а NB - это количество
то есть в num я могу вводить посто имя начального массива,а в nb общее кол-во массивов?
Я правильно понят?
Нет не правильно. В NUM нужно вводить начальный адресс массива - 100 это будет %MW100, а в NB - количество слов, если NB=32 - то это будет массив в чужом ПЛК - %MW100:32.
Сейчас только вспомнил, что у Вас Пермиум. Там вместо функции ADDM должна использоваться функция ADDR.
И еще - ScrewDriver прав. В бортовых ЦПУшных Ethernet портах Премиум доступны также GloabalData и функции IO Scaning, которые конфигурируются. Но если Вы пошли по этому пути, то наверное не стоит уже сварачивать.
Это точно))тут хоть как то добраться до конченой точки) а про i/o scanning слышал,думаю тоже стоит посмотреть
Спасибо еще раз,буду смотреть...
IO Scaning конфигурируется только со стороны Клиентского приложения. Укзываете диапазон переменных для записи и для чтения и периодичность опроса для конкретного девайса с нужным IP. Девайс может быть любой фирмы, требование - наличие Modbus/TCP сервера.
Global Data работает только если все ПЛК у Вас Modicon. В настройках объявляете груповой адресс для всех ПЛК. Нужную перменную для записи в другие ПЛК (до 1 Кбайта) в ее свойствах объявлете как Издаваемую (Publish) а для чтения как Подписываемую (Subscribte). Название и структура переменных должны совпадать на Издателе и на подписчике.
В принципе для вашего случая подходят оба эти сервиса. Надо было Вас сразу туда направить, там программу писать не надо. Но в любом случае внимательно почитайте хелп.
Всем доброго дня
Я уже обращался с вопросом о передаче информации с нескольких массивов на один, но тогда мненужно было передавать %MW , а теперь задача изменилась, нужно передать %M ,а как это осуществить?
Так как в IO Scanning возможно настройка только по %MW? Подскажите пож-та
ScrewDriver
11.11.2010, 13:06
сделайте сбор всех %M в %MW (%MW0.0:=%M0; %MW0.1:=%M1......), передайте %MW, расшифруйте обратно. (%M0:=%MW0.0; %M1:=%MW0.1....)
Я извиняюсь, но может с такими знаниями почитать книжки по PLC или сходить на курсы?
У И. Петрова помнится была хорошая книжка для начинаюших - спросите в.....
http://www.twirpx.com/file/4896/
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.